<?php

use think\migration\Migrator;

class CreateCheckinLogTable extends Migrator
{
    /**
     * 执行迁移
     */
    public function change()
    {
        // 创建人脸识别签到日志表
        $table = $this->table('system_checkin_log', [
            'engine' => 'InnoDB',
            'collation' => 'utf8mb4_general_ci',
            'comment' => '人脸识别签到日志表',
        ]);
        
        $table->addColumn('device_sn', 'string', ['limit' => 50, 'comment' => '设备序列号'])
              ->addColumn('member_id', 'integer', ['default' => 0, 'comment' => '会员ID(0表示未识别)'])
              ->addColumn('member_name', 'string', ['limit' => 100, 'default' => '', 'comment' => '会员姓名'])
              ->addColumn('card_num', 'string', ['limit' => 50, 'default' => '', 'comment' => '卡号'])
              ->addColumn('check_time', 'datetime', ['comment' => '签到时间'])
              ->addColumn('is_success', 'integer', ['limit' => 1, 'default' => 0, 'comment' => '识别是否成功(0失败,1成功)'])
              ->addColumn('is_stranger', 'integer', ['limit' => 1, 'default' => 1, 'comment' => '是否陌生人(0否,1是)'])
              ->addColumn('is_temp', 'integer', ['limit' => 1, 'default' => 0, 'comment' => '是否临时人员(0否,1是)'])
              ->addColumn('mask_status', 'integer', ['limit' => 1, 'default' => 0, 'comment' => '口罩状态(0无,1有,2未知)'])
              ->addColumn('photo_data', 'text', ['null' => true, 'comment' => '人脸照片数据(base64)'])
              ->addColumn('address', 'string', ['limit' => 200, 'default' => '', 'comment' => '地址'])
              ->addColumn('birthday', 'string', ['limit' => 20, 'default' => '', 'comment' => '生日'])
              ->addColumn('nation', 'string', ['limit' => 50, 'default' => '', 'comment' => '民族'])
              ->addColumn('mjkh', 'string', ['limit' => 50, 'default' => '', 'comment' => '门禁卡号'])
              ->addColumn('health_code_status', 'string', ['limit' => 50, 'default' => '', 'comment' => '健康码状态'])
              ->addColumn('invalid_reason', 'string', ['limit' => 200, 'default' => '', 'comment' => '无效原因'])
              ->addColumn('is_over', 'integer', ['limit' => 1, 'default' => 0, 'comment' => '是否超时(0否,1是)'])
              ->addColumn('create_time', 'datetime', ['comment' => '创建时间'])
              ->addIndex(['device_sn'])
              ->addIndex(['member_id'])
              ->addIndex(['card_num'])
              ->addIndex(['check_time'])
              ->addIndex(['is_success'])
              ->addIndex(['is_stranger'])
              ->addIndex(['create_time'])
              ->create();
    }
}
